package algorithmTopics.sort;

public class imp {


    // 从后向前进行比较
    //合并两个升序的数组 ，并升序
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        //数组1的倒叙
        int i = m - 1;
        //数组二的倒序
        int j = n - 1;
        int end = m + n - 1;
        //从后向前进行比较
        while (j >= 0) {
            nums1[end--] = (nums2[j] < nums1[i] && i > 0)? nums1[i--]:nums2[j--];
        }
    }

    // 找到错误的版本 , 二分查找查找
    public int firstBadVersion(int n) {
       int left = 1;
       int right = n;
        while (left < right) {
            int mid = (left + right) >>> 1;
            if (!isBadVersion(mid)) {
                left = mid + 1;
            } else {
                right = mid;
            }
        }

       return left;
    }

    private boolean isBadVersion(int i) {

        return i ==3 || i==4 || i==5;
    }
}
